package com.boarsoft.dao.sharding.bean;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 此注解只能加到方法上，根据方法参数找到分片键<br>
 * 如果即不批定index，也不指定value，则使用方法名
 * 
 * @author Mac_J
 *
 */
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface DaoSharding {

	/**
	 * 分片策略（分片器名称）
	 * 
	 * @return
	 */
	public String policy() default "default";

	/**
	 * 用于决定分片的方法参数的索引，如果小于0，表示忽略
	 * 
	 * @return
	 */
	public int index() default -1;

	/**
	 * 用于确定分片的值，如果不为空将忽略index
	 * 
	 * @return
	 */
	public String value() default "default";
}